Skip to content

chore: version packages#50

Merged
aryeko merged 1 commit intomainfrom
changeset-release/main
Feb 24, 2026
Merged

chore: version packages#50
aryeko merged 1 commit intomainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Feb 19, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@ghx-dev/core@0.2.0

Minor Changes

  • a38e812: Add atomic capability chaining: executeTasks() function that executes multiple capabilities in a single GraphQL batch with ≤2 API round-trips. New ghx chain --steps '<json-array>' CLI command. Supersedes the unused composite capability system which has been removed.

  • de1c7a1: ### Capability naming overhaul

    Renamed all capabilities to follow a consistent domain.resource.action pattern. Key renames include:

    • pr.comments.listpr.thread.list, pr.comment.replypr.thread.reply, pr.comment.resolvepr.thread.resolve, pr.comment.unresolvepr.thread.unresolve
    • pr.mergeability.viewpr.merge.status, pr.merge.executepr.merge
    • pr.status.checkspr.checks.list, pr.checks.get_failedpr.checks.failed
    • pr.reviews.listpr.review.list, pr.reviewers.requestpr.review.request
    • pr.review.submit_approve/submit_comment/submit_request_changes → unified pr.review.submit with event parameter
    • pr.diff.list_filespr.diff.files, pr.ready_for_review.set → removed (replaced by pr.update)
    • workflow_run.getworkflow.run.view, workflow_runs.listworkflow.runs.list, workflow_run.*workflow.run.*
    • workflow_job.logs.getworkflow.job.logs.raw, workflow_job.logs.analyzeworkflow.job.logs.get
    • Removed redundant workflow.run.jobs.list capability

    New capabilities

    • pr.diff.view — view PR diff content
    • issue.labels.add — add labels to an issue (non-destructive; complements issue.labels.update)
    • pr.create — create a pull request
    • pr.update — update PR title/body/base
    • workflow.run.view (renamed from workflow_run.get) — now includes GraphQL routing

    GraphQL improvements

    • Extracted 3 shared GraphQL fragments (PageInfoFields, IssueCoreFields, PrCoreFields) reducing field duplication across 10 operation files
    • Routed pr.merge.status and repo.view through GraphQL (preferred) with CLI fallback
    • Added fetchPrMergeStatus to the GraphQL client

    Capabilities list enrichment

    • capabilities list now returns required_inputs per capability — agents can skip explain calls
    • --domain filter for ghx capabilities list (e.g., --domain pr)
    • Slimmed SKILL.md to reference required_inputs in list output

    stdin input support

    • ghx run <task> --input - reads JSON input from stdin with 10s timeout

    Integration tests

    • 58 new integration tests covering all previously untested capabilities
  • bc10ce8: Add optional_inputs and optional_inputs_detail fields to CapabilityListItem for richer capability introspection. Also adds a required optional_inputs field to the exported CapabilityExplanation type — downstream consumers must handle this new field.

  • d3564e2: Standardize all capability IDs to consistent naming conventions.

    Renamed capabilities:

    • pr.thread.*pr.threads.* (list, reply, resolve, unresolve)
    • pr.review.*pr.reviews.* (list, request, submit)
    • pr.checks.rerun_allpr.checks.rerun.all
    • pr.checks.rerun_failedpr.checks.rerun.failed
    • workflow.getworkflow.view
    • workflow.dispatch.runworkflow.dispatch
    • workflow.run.rerun_allworkflow.run.rerun.all
    • workflow.run.rerun_failedworkflow.run.rerun.failed
    • workflow.job.logs.getworkflow.job.logs.view
    • project_v2.org.getproject_v2.org.view
    • project_v2.user.getproject_v2.user.view
    • project_v2.item.add_issueproject_v2.items.issue.add
    • project_v2.item.field.updateproject_v2.items.field.update
    • release.getrelease.view
    • release.create_draftrelease.create
    • release.publish_draftrelease.publish
    • issue.labels.updateissue.labels.set
    • issue.assignees.updateissue.assignees.set
    • issue.relations.getissue.relations.view
    • issue.linked_prs.listissue.relations.prs.list
    • issue.parent.setissue.relations.parent.set
    • issue.parent.removeissue.relations.parent.remove
    • issue.blocked_by.addissue.relations.blocked_by.add
    • issue.blocked_by.removeissue.relations.blocked_by.remove

    New capabilities:

    • issue.labels.remove — remove specific labels from an issue
    • issue.assignees.add — add assignees without replacing existing
    • issue.assignees.remove — remove specific assignees
    • issue.milestone.clear — remove milestone from an issue
    • pr.assignees.add — add assignees to a PR
    • pr.assignees.remove — remove assignees from a PR
    • project_v2.items.issue.remove — remove an issue from a Projects v2 project

    Retired capabilities:

    • pr.checks.failed — merged into pr.checks.list (use state: "failed" filter)
    • check_run.annotations.list — annotations now inline in pr.checks.list output
    • pr.assignees.update — replaced by pr.assignees.add + pr.assignees.remove
    • pr.threads.composite, issue.triage.composite, issue.update.composite — composite infrastructure removed

    Output schema changes:

    • All rerun capabilities now return { runId: integer, queued: boolean } (normalized)
    • pr.threads.reply output now includes commentId and commentUrl
    • issue.relations.parent.set output now includes updated: boolean
    • issue.relations.blocked_by.add output now includes added: boolean
    • issue.milestone.set no longer accepts null (use issue.milestone.clear instead)
  • 0b0335b: Add Claude Code plugin infrastructure for native plugin installation.

    • Move skill to skills/using-ghx/SKILL.md with plugin frontmatter, serving both ghx setup and Claude Code plugin
    • Add .claude-plugin/plugin.json (package) and .claude-plugin/marketplace.json (repo root)
    • Add sync-plugin-manifests.mjs to generate plugin manifests from package.json with --check mode for CI
    • Remove redundant dist/skills copy (skills ship via files array at package root)
  • 871d369: Remove @ghx-dev/core/agent subpath export. All agent tools (createExecuteTool, explainCapability, listCapabilities) are now exported from @ghx-dev/core. The MAIN_SKILL_TEXT constant has been removed.

  • bc10ce8: Standardize all issue mutation capabilities to accept { owner, name, issueNumber } instead of { issueId }.

    Breaking input change for: issue.close, issue.reopen, issue.delete, issue.update, issue.labels.set, issue.labels.add, issue.labels.remove, issue.assignees.set, issue.assignees.add, issue.assignees.remove, issue.milestone.set, issue.comments.create.

    Each capability now resolves the GitHub node ID internally via a Phase 1 lookup before executing the Phase 2 mutation. This matches the input contract of issue.view and enables ResolutionCache hits when capabilities are chained together in executeTasks calls.

  • 58cc7fe: Add structured JSONL execution logging. Emits typed log events at key points in the execution pipeline — preflight checks, route selection, adapter dispatch, all attempt failures (with retryable field), and results — written to ~/.ghx/logs/ghx-YYYY-MM-DD.jsonl. Opt-in via GHX_LOG_LEVEL env var (debug/info/warn/error; unset = off). Log directory is configurable via GHX_LOG_DIR.

Patch Changes

  • fb05c12: Refactor CLI capability adapter into domain modules with full unit test coverage.

    Refactoring:

    • Split monolithic cli-capability-adapter.ts (2200+ lines) into focused domain modules under core/execution/adapters/cli/domains/: repo.ts, issue.ts, pr.ts, workflow.ts, project-v2.ts, release.ts
    • Extracted shared arg-building helpers to cli/helpers.ts (buildRepoArg, buildPaginationArgs, buildFieldsFlag, etc.)
    • Added cli/capability-registry.ts — auto-discovers all handlers by spreading domain handlers maps; cli-capability-adapter.ts becomes a thin dispatcher

    Bug fixes:

    • pr.ts: Use rerunAllResult.exitCode (not result.exitCode) in handlePrChecksRerunFailed fallback error path
    • project-v2.ts: Remove unreachable SyntaxError catch branch in handleProjectV2ItemFieldUpdate (no JSON parsing on the success path)
    • release.ts: Fix misleading error message — owner/name are already validated by requireRepo; only releaseId can be invalid at that point
    • workflow.ts: Track total error/warning counts independently of the 10-line collection cap in handleWorkflowJobLogsGet; type-narrow artifact id field consistently with other normalized fields

    Tests:

    • Added comprehensive unit test suites for all six domain modules (cli-domains-*.test.ts) and for the shared helpers (cli-helpers.test.ts) and capability registry (cli-capability-registry.test.ts) — all modified files at ≥90% branch coverage
    • Refactored e2e tests to use proper afterEach/afterAll lifecycle hooks instead of ESLint rule suppressions

    Docs:

    • Updated docs/architecture/adapters.md and docs/architecture/repository-structure.md to reflect the new domain module layout
  • bc10ce8: Fix ghx chain / executeTasks batch resolution aliasing bug.

    buildBatchQuery aliases each GraphQL root field (e.g. repository) as step0, step1, etc. GitHub returns the value directly under the alias key with no wrapper. The engine was storing the unwrapped value, causing applyInject to fail when traversing inject paths like repository.issue.id in subsequent steps.

    Fix: extractRootFieldName() is added to batch.ts and used in the Phase 1 un-alias loop to re-wrap the raw value as { [rootFieldName]: rawValue } before storing it in lookupResults. Adds regression test using real batch/resolve implementations.

  • c4fbcaa: Refactor GQL layer: split monolithic client.ts into lazy-loaded domain modules, add capability registry dispatch, and rename common-types.ts to follow .generated convention. Import cost reduced from ~2,284 lines to ~220 lines via dynamic imports.

  • 89344ca: Replace deep relative imports with @core/* path aliases for improved readability and maintainability.

  • 7225358: Harden atomic chaining infrastructure based on review feedback:

    • Register issue.assignees.add/remove GraphQL handlers (types, mutations, client, capability registry) — these capabilities now route via GraphQL instead of falling back to CLI
    • Fix GraphqlError.path type to ReadonlyArray<string | number> per GraphQL spec
    • Normalize queryRaw error handling — HTTP errors now settle consistently regardless of transport implementation
    • Guard resolution cache against storing undefined and sweep expired entries before FIFO eviction
    • Check response.ok before response.json() and wrap happy-path parse in try/catch for truncated responses
    • Use strict !== undefined check for step errors instead of truthy check
    • Extract buildLookupVars helper to eliminate duplication in engine
    • Pass strings directly to mapErrorToCode instead of wrapping in Error
  • bc10ce8: Improve pr.reviews.submit schema and capabilities list output.

    • Add startLine and startSide fields to pr.reviews.submit for multi-line comment ranges
    • Document the side vs diffSide naming asymmetry between submit input and pr.threads.list output
    • Annotate body conditionality: required for COMMENT/REQUEST_CHANGES, optional for APPROVE
    • Clarify pr.reviews.list description to note it returns review-level metadata only (not inline thread comments)
    • Show array item field hints in capabilities list text output (e.g. comments?[path, body, line, side?, startLine?, startSide?])

@ghx-dev/benchmark@0.2.2

Patch Changes

@github-actions github-actions bot force-pushed the changeset-release/main branch 15 times, most recently from 6d4dfc6 to 58cc7fe Compare February 23, 2026 21:27
@aryeko aryeko merged commit 792b664 into main Feb 24, 2026
@aryeko aryeko deleted the changeset-release/main branch February 24, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant